import java.util.Random;

import static java.lang.Math.random;

/*给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.
        实现代码, 能够创建两个线程, 对这个数组的所有元素求和.
        其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.
        最终再汇总两个和, 进行相加
        记录程序的执行时间.*/
public class Thread5 {
    private static int [] longarray =new int [10000000];
    private static long suma;
    private static long sumb;

    private static void randomnum(){
        Random random = new Random();
        for (int i = 0; i < longarray.length; i++) {
            longarray[i]= random.nextInt(100)+1;
        }
    }

    public static void main(String[] args) throws InterruptedException {
        long startTime = System.currentTimeMillis();
        randomnum();
        Thread a = new Thread(()->{
            for (int i = 0; i < longarray.length; i=i+2) {
                suma += longarray[i];
            }
        });

        Thread b = new Thread(()->{
            for (int i = 1; i < longarray.length; i=i+2) {
                sumb += longarray[i];
            }
        });
        a.start();
        b.start();
        a.join();
        b.join();

        long endtime =System.currentTimeMillis();

        System.out.println("时间 = "+ (endtime-startTime));
        System.out.println("总和 = "+(suma+sumb));
    }

}
